/*
* Accord Software, Inc.
*
* Tutorial 07 - CIDL file.
*
* Print the cube
*
* 1 ------------- 2
* /| /|
* / | / |
* / | / |
* / | / |
* / | / |
* 4 ------------- 3 |
* | . | |
* | . | |
* | 5 . . . . |. . .6
* y| . | /
* | . | /
* | . | /z
* | . | /
* |. |/
* 8 --------------7
* x
*
*/
#include "cube.h"
static int
edgeprint(lp)
struct cube *lp;
{
int n = lp->number;
int x = lp->x->number;
int y = lp->y->number;
int z = lp->z->number;
printf(" %d: %d %d %d\n", n, x, y, z);
return n;
}
int
addcube(lp)
struct cube *lp;
{
int sum = 0;
/*
* find 1
*/
while (lp->number != 1) {
if (lp->x->number < lp->number)
lp = lp->x;
else if (lp->y->number < lp->number)
lp = lp->y;
else if (lp->z->number < lp->number)
lp = lp->z;
}
printf(" n: x y z\n");
printf(" - - - -\n");
sum += edgeprint(lp);
lp = lp->x;
sum += edgeprint(lp);
lp = lp->z;
sum += edgeprint(lp);
lp = lp->x;
sum += edgeprint(lp);
lp = lp->y->z;
sum += edgeprint(lp);
lp = lp->x;
sum += edgeprint(lp);
lp = lp->z;
sum += edgeprint(lp);
lp = lp->x;
sum += edgeprint(lp);
return sum;
}